#ifndef __SN32F280_OLED_DISPLAY_H
#define __SN32F280_OLED_DISPLAY_H


/*_____ I N C L U D E S ____________________________________________________*/
#include <SN32F280.h>
#include <SN32F200_Def.h>

/*_____ D E F I N I T I O N S ______________________________________________*/
#define			OLED_CONST_TIME				100
#define			OLED_BREATH_TIME			200
#define			OLED_SPECTRUM_TIME		200
#define			OLED_SNAKE_TIME				60
#define			OLED_ROLL_TIME				60
#define			OLED_M_ROLL_TIME			60
#define			OLED_ROTATE_TIME			600
#define			OLED_M_ROTATE_TIME		50
#define			OLED_SPRING_TIME			160
#define			OLED_M_SPRING_TIME		60
#define			OLED_OFF_TIME					400

#define			OLED_M_ROLL_MODE			0
#define			OLED_ROLL_MODE				1
#define			OLED_SPECTRUM_MODE		2
#define			OLED_CONST_MODE				3
#define			OLED_BREATH_MODE			4
#define			OLED_SNAKE_MODE				5
#define			OLED_OFF_MODE					6

#define			OLED_ROTATE_MODE			24
#define			OLED_M_ROTATE_MODE		25
#define			OLED_SPRING_MODE			26
#define			OLED_M_SPRING_MODE		27
#define			OLED_M_BREATH_MODE		31
#define			OLED_TEST_MODE				30

#define			OLED_USER_ROLL				0
#define			OLED_ROLL_COLOUR_SET				8,8

#define			OLED_USER_SNAKE				1
#define			OLED_SNAKE_COLOUR_SET				8,8

#define			OLED_USER_SPECTRUM		8
#define			OLED_SPECTRUM_COLOUR_SET		0,0

#define			OLED_USER_CONST				3
#define			OLED_CONST_COLOUR_SET				4,7

#define			OLED_USER_BREATH			4
#define			OLED_BREATH_COLOUR_SET			8,8

#define			OLED_USER_OFF					5
#define			OLED_OFF_COLOUR_SET					0,0

#define			OLED_USER_NUM					9

#define			OLED_USER_M_SPECTRUM	23
#define			OLED_USER_ROTATE			24
#define			OLED_USER_SPRING			25

#define			OLED_MulColour_MODE		2

#define			OLED_LIGHT_MODE_MAX		5
#define			OLED_SPEED_MODE_MAX		5

#define			OLED_NUM							6
/*_____ M A C R O S ________________________________________________________*/

/*_____ D E C L A R A T I O N S ____________________________________________*/
extern uint8_t rOLED_mode;
extern uint8_t f_OLED_update;
extern uint8_t rOLED_user_mode;
extern uint8_t rOLED_colour_mode;
extern uint8_t rOLED_SpeedMode;
extern uint8_t rOLED_SpeedParam;
extern uint8_t rOLED_LightMode;
extern uint8_t rOLED_LightParam;
extern uint8_t f_OLEDMoveLeft;
extern uint8_t rOLED_colour_mode_max;
extern uint8_t f_OLEDStop;
extern uint16_t rOLED_update_cnt_reload;
extern uint16_t rOLED_update_cnt;

void OLED_Darken_chat(void);
void OLED_Init(void);
void OLED_Display(void);
void OLED_const_init(void);
void OLED_snake_init(void);
void OLED_spectrum_init(void);
void OLED_breath_init(void);
void OLED_roll_init(void);
void OLED_spring_init(void);
void OLED_rotate_init(void);
void OLED_M_roll_init(void);
void OLED_M_spring_init(void);
void OLED_M_rotate_init(void);
void OLED_star_init(void);
void OLED_test_init(void);
void OLED_test_design(void);
void OLED_off_init(void);
void OLED_Update_Chat(void);
void OLED_Speed_Update(void);
void OLED_Light_Update(void);
void OLED_user_mode_switch(void);
void OLED_colour_mode_switch(void);
#endif	/*__SN32F280_OLED_DISPLAY_H*/
